"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.default = getImgFillPos;
/**
 * 一张意宽高的图片以最大显示面积的方式居中显示在一个随意宽高的遮罩层中
 * 类似壁纸的"填充"效果
 * @param width
 * @param height
 * @param imgWidth
 * @param imgHeight
 * @returns {{width: *, height: *, left: number, top: number}}
 */
function getImgFillPos(width, height, imgWidth, imgHeight) {
    //最终计算出的图片缩放后的宽高
    var w, h;
    //遮罩层的宽高比率
    var rate = width / height;
    //图片的宽高比率
    var rateImg = imgWidth / imgHeight;
    if (rateImg < rate) {
        //说明图片的宽比高相对于遮罩层的短得多，此时应放大图片宽度至遮罩层宽度，高度等比例放大，这样图片高度肯定超过遮罩层高度
        w = width;
        h = w / rateImg;
    } else if (rateImg > rate) {
        //说明图片的宽比高相对于遮罩层的长得多，此时应放大图片高度至遮罩层高度，宽度等比例放大，这样图片宽度肯定超过遮罩层宽度
        h = height;
        w = h * rateImg;
    } else {
        //比率一样，只需要把图片缩放到跟遮罩层重合即可
        w = width;
        h = height;
    }
    return {
        width: w,
        height: h,
        //让图片居中显示
        left: (width - w) / 2,
        top: (height - h) / 2
    };
}